home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Aminet 41
/
Aminet 41 (2001)(Schatztruhe)[!][Feb 2001].iso
/
Aminet
/
gfx
/
edit
/
AmiCAD_2.06.lha
/
AmiCAD
/
ARexx
/
ChercherTexte.AmiCAD
< prev
next >
Wrap
Text File
|
2000-04-13
|
2KB
|
85 lines
/* Recherche d'un texte
Version 1.00: 3 juin 1999
Version 1.01: 13 avril 2000 (modif fonctions OBJECTS, LOCK, UNLOCK)
$VER: 1.01 (© R.Florac, 13 avril 2000) */
options results /* indispensable pour récupérer le résultat des macros */
signal on error /* pour l'interception des erreurs */
signal on syntax
texte=""
'LOCK:FIRSTSEL'; i=result
if i>0 then do
'IF(TYPE('i')==TEXTE,READTEXT('i'),"")'; texte=result
if result="" then do
'IF(TYPE('i')==REFERENCE,READTEXT('i'),"")'; texte=result
if result="" then do
'IF(TYPE('i')==VALEUR,READTEXT('i'),"")'; texte=result
end
end
end
if texte="" then do
'ASKTEXT("Texte à chercher ?","")'
texte=result
end
if texte='' then do
'UNLOCK'
exit
end
call 'Travail:AmiCAD/Arexx/InitObjets.AmiCAD'
nf=0
'TITLE("Recherche en cours..."):OBJECTS'
o=result
do i=1 to o
'IF(TYPE('i')==TEXTE,READTEXT('i'),"")'
t=result
if t ~= "" then do
if t=texte then do
'MARK('i')'
nf=nf+1
end
end
end
i=1
do while i>0
'FINDREF('i',"'texte'")'; i=result
if i>0 then do
'MARK('i'):MARK(GETREF('i'))'
nf=nf+1
i=i+1
if i>o then leave
end
end
i=1
do while i>0
'FINDVAL('i',"'texte'")'; i=result
if i>0 then do
'MARK('i'):MARK(GETVAL('i'))'
nf=nf+1
i=i+1
if i>o then leave
end
end
if nf > 0 then do
'TITLE(""):MESSAGE("'texte' trouvé"+CHR(10)+"'nf' fois"):UNLOCK'
end
else 'TITLE(""):MESSAGE("'texte'"+CHR(10)+"non trouvé"):UNLOCK'
exit
/* Traitement des erreurs, interruption du programme */
syntax:
erreur=RC
'MESSAGE("Erreur de syntaxe"+CHR(10)+"en ligne 'SIGL'"+CHR(10)+"'errortext(erreur)'"):UNLOCK'
exit
error:
'MESSAGE("Erreur en ligne 'SIGL'"):UNLOCK'
exit